最近想建个博客记录一下平时的一些技术细节,以后可以随时翻翻,发现以前做过的事总是很容易忘记,真是好记性不如烂笔头,顺便整理一下思路。
- 整理知识,学习笔记
- 发布日记,杂文,所见所想
- 撰写发布技术文稿(代码支持)
- 撰写发布学术论文(LaTeX 公式支持)
搭建环境
- Windows10 64位
- node@4.4 后变成6.1.0
- hexo@3.3.7
前期
百度知道了搭建博客用wordpress等需要有服务器,买不起,虽然后面知道了GitHub大礼包
,有digitalOcean 提供的优惠劵,但已经不想折腾wordpress了,以后再说。所以用了github page这个功能,再加上hexo ,类似的还有jekyll,但jekyll 好像命令有些复杂,而且需要依赖的东西有点多,所以选了hexo,hexo 用户量级好像不如jekyll。
Hexo 是什么
Hexo 可以快速,简洁,高效的搭建博客框架,方便的生成静态网页 托管在github上。它是台湾的@tommy351编写的,基于Node.js。
搭建博客
安装git
用以下命令查看git版本
安装Node.js
windows环境下的Node.js的安装很简单,只需要下载客户端一路next就行了,第一次选择前面提到博客中的v4.4.0LTS版本64位的,后来因为css样式显示不出来,又下载了新版本V6.110,升级node又是一番折腾,后面再提。
用以下命令查看版本号:
安装Hexo
Node.js 安装完成后,在电脑任意位置,右键选择GitBash ,执行npm命令
npm install -g hexo
安装完成后,建立一个文件夹(E:\Hexo),在建立的文件夹内右键,选择gitbush,执行以下命令,就在目标文件夹下创建建立博客所需的文件。
hexo init
然后
hexo install
初始化完成目录图:
这是参考了http://www.cnblogs.com/liuxianan/p/build-blog-website-by-hexo-github.html的教程
执行以上命令,hexo会把public
文件夹里的东西提交到github上,同时在public 文件夹中生成相关html
文件。
hexo s 开启本地服务端口,打开浏览器http://localhost:4000 即可看到内容,啊哈^-^ ,没想到写到这个竟然解决的本地没有css的问题,原来自己一直是点击Index.html打开网页,不是用以上网址打开,所以css样式显示不出来,但是为什么呢,不求甚解,难道是不用那个网址没法渲染,找不到css样式,但自己看了看源代码,觉得应该能找到啊,不解。
css 代码:
顺便记录一下路径的问题:
./ 当前路径
/ 网站根路径
../ 上一层目录,如../../表示上上层目录
当前路径是指和本文件同在一个文件夹下,这是可以用相对路径。
修改端口号:执行命令hexo s -p 5000
修改主题
官方主题
下载了2个主题:
hexo-them-jekyll和hexo-theme-yilia
下载主题:
下载后的主题在themes
文件夹中,修改—config.yml
中的theme: landscape
为theme: yilia
,然后执行hexo g
生成,注意hexo g 每次执行都会把public 文件夹的东西更新一次,还有theme 冒号后面注意有空格
。
如果有问题,执行hexo clean
,清理public 的内容,然后重新生成和发布。
上传
hexo上传代码会把以前的代码都删掉,注意备份。
首先,配置ssh_key,用ssh key 解决本地与服务器连接的问题。可参考百度经验。
|
|
会生成一个文件.ssh\id_rsa.pub
,复制里面的内容到github,个人设置-》SSH and GPG key中-》New SSh key
测试是否成功:
然后配置:
配置:config_yml
中deploy,
后又改成这个,http似乎不能写成https
如果报deployer not found,是因为没有安装插件。
打开 git bash,输入hexo d
提交改动代码到github。
保留CNAME等文件
把这些文件放到source
文件夹中,这里的所有文件会原样复制到public文件夹中。
http://blog.liuxianan.com/build-blog-website-by-hexo-github.html 中可下载作者的md文件。
搭建过程中问题
1、生成时hexo 报错 Cannot read property ‘replace’ of null
解决:
_config.yml 配置文件中的url 设置错误
|
|
root 后是根路径,与css文件路径有关
2、 ERROR Plugin load failed: hexo-generator-json-content
升级node.js到最新稳定版
升级node
,参照博客,先安装gnvm,点击exe发现在cmd下找不到,弃之,后直接下载node安装。执行命令 npm i hexo-generator-json-content –save
3、提交时出现错误ERROR Plugin load failed: hexo-deployer-git
解决
执行 npm install hexo-deployer-git –save
4、config 中文乱码
在sublime里打开,保存为GBK-8格式
常见hexo命令
|
|
缩写:
组合命令:
markdown
|
|
title: postName #文章页面上的显示名称,一般是中文
date: 2013-12-02 15:30:16 #文章生成时间,一般不改,当然也可以任意修改
categories: 默认分类 #分类
tags: [tag1,tag2,tag3]#文章标签,可空,多标签请用格式,注意:后面有个空格
域名解析
关于A解析和CNAME解析的区别:
A解析:只能填IP地址,IP地址如果换了的话就需要换解析记录
CNAME解析:解析到另一个域名,即使被指向的域名的ip发生变化,也不需要更改解析记录。CNAME优先级高于A解析(至少在DNSPOD是这样的)
给网站添加favicon
这个和主题有关,默认可能没有,浏览器打开后根据开发者工具里可以看到当前主题下’favicon’的具体路径和要求文件格式,对应做一个就可以了。有时候是’png’但也有时候强制要求’.ico’,可以去比特虫等网站在线制作。
博客优化
(12月2日更新)
根据官网配置了本地搜索 社交链接 打赏功能 友情链接 百度统计
文章阅读量统计配置LeanCloud
安装wordcount插件
npm i –save hexo-wordcount
npm install hexo-generator-searchdb –save
显示文字
用 Sublime Text 工具打开 post.swig 文件,路径如下:xxx_blog/themes/next/layout/_macro/post.swig
增加网站的浏览次数与访客数量统计功能
网站的浏览次数,即pv;网站的访客数为uv。pv的计算方式是,单个用户连续点击n篇文章,记录n次访问量;uv的计算方式是,单个用户连续点击n篇文章,只记录1次访客数。你可以根据需要添加相应的统计功能。
安装busuanzi.js脚本
如果你使用的是NexT主题(其他主题类似),打开/theme/next/layout/_partial/footer.swig文件,拷贝下面的代码至文件的开头。
显示统计标签
同样编辑/theme/next/layout/_partial/footer.swig文件。
如果你想要显示pv统计量,复制以下代码至你想要放置的位置,
本站总访问量次
如果你想要显示uv统计量,复制以下代码至你想要放置的位置,
本站访客数人次
hexo数学公式显示
这个折腾了两天,放弃之后结果莫名其妙可以显示了。
主要使用的命令
npm install hexo-math –save
hexo math install
npm uninstall hexo-renderer-marked –save
npm install hexo-renderer-kramed –save
npm install hexo-renderer-mathjax –save
kramed是在marked上作了修改。
hexo-renderer-kramed渲染后公式消失了,最终卸载了。
最终的方案:
用编辑器打开marked.js(在./node_modules/marked/lib/中)
Step 1:
escape: /^\([\`*{}[]()# +-.!_>])/,
替换成
escape: /^\([`*[]()# +-.!_>])/,
这一步是在原基础上取消了对\,{,}的转义(escape)
Step 2:
em: /^\b((?:[^]|_)+?)\b|^*((?:**|[\s\S])+?)*(?!*)/,
替换成
em:/^*((?:**|[\s\S])+?)*(?!*)/,
进入到主题目录,找到_config.yml配置问题,把mathjax默认的false修改为true,具体如下:
MathJax Support
mathjax:
enable: true
per_page: true
参考文献:
http://blog.csdn.net/emptyset110/article/details/50123231